<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
	<head>
		<title>PSP Report</title> 
		
		<style>
		td.fieldname {
			text-align:right;
			font-weight:bold;
		}
		body {
			font-family:Verdana;
		}
		div.section-title {
			font-size:150%;
			font-weight:bold;
			margin-top:20px;
		}
		
		div.graph-title {
			font-style: italic;
		}
		
		table.log-table {
			border-collapse:collapse;
		}
		table.log-table td {
			border-width:1px;
			border-style:solid;
			border-color:#888888;
			padding:5px 5px 5px 5px;
		}
		table.log-table th {
			border-width:2px;
			border-style:solid;
			border-color:#888888;
			background-color:#CCCCCC;
			padding:5px 5px 5px 5px;
		}
		</style>
	</head> 
	<body> 
	
		<div>
			<h1>Email with ACL2</h1>
			<em>Personal Software Process Summary</em>
		</div>
		
		<div class="section-title">Project Essentials</div>
			<table>
				<tr><td class="fieldname">Name:</td><td>Team Dijkstra</td></tr>
				<tr><td class="fieldname">Instructor:</td><td>Dr. Rex Page</td></tr>
				<tr><td class="fieldname">Date:</td><td>April 16, 2013</td></tr>
				<tr><td class="fieldname">Language:</td><td>ACL2, C++, Shell Scripting, XML</td></tr>
			</table>
	
		<div class="section-title">Lines of Code</div>
		<table>
			<tr><th>Type</th><th>Prediction by user</th><th>Actual</th></tr>
			<tr>
				<td>Added</td>
				<td>1080</td>
				<td>401</td>
			</tr>
			<tr>
				<td>Base</td>
				<td>0</td>
				<td>66</td>
			</tr>
			<tr>
				<td>Modified</td>
				<td>0</td>
				<td>15</td>
			</tr>
			<tr>
				<td>Removed</td>
				<td>0</td>
				<td>0</td>
			</tr>
		</table>
		
		<div class="section-title">PSP Projection</div>
		<table>
		<tr><td align=center>
			<div class="graph-title">LoC Certainty</div>
			<img src='http://chart.apis.google.com/chart?cht=lc&chd=t:239,215,191,166,139,110,76,35,-19,-106|239,263,287,312,339,368,402,442,496,584&chs=450x300&chco=FF0000,00FF00&chxt=x,y,x,y&chxr=1,0,150,30&chdl=Lower bound|Upper bound&chxl=0:|10%|20%|30%|40%|50%|60%|70%|80%|90%|2:|Certainty|3:|LOC&chxp=2,50|3,50&chtt=&chds=0,584&chxr=1,0,584'>
		</td><td align=center>
			<div class="graph-title">Time Certainty</div>
			<img src='http://chart.apis.google.com/chart?cht=lc&chd=t:3365,3110,2850,2580,2291,1974,1612,1176,597,-343|3365,3620,3880,4151,4440,4757,5119,5555,6134,7073&chs=450x300&chco=FF0000,00FF00&chxt=x,y,x,y&chxr=1,0,150,30&chdl=Lower bound|Upper bound&chxl=0:|10%|20%|30%|40%|50%|60%|70%|80%|90%|2:|Certainty|3:|LOC&chxp=2,50|3,50&chtt=&chds=0,7073&chxr=1,0,7073'>
		</td></tr></table>
		
		<div class="section-title">Project Data</div>
		<table>
		<tr><td align=center valign=top>
			<div class="graph-title">Time Per Defect Type</div>
			<img src='http://chart.apis.google.com/chart?cht=p3&chd=t:31,249,60,90,300,406,60&chs=300x150&chl=Testing|Coding|Personnel|Application Support|Conception|Design|Networking&chtt='>
		</td><td align=center valign=top>
			<div class="graph-title">Time Per Phase</div>
			<img src='http://chart.apis.google.com/chart?cht=p3&chd=t:120,90,4120,840,2255&chs=300x150&chl=Conceptual|Documentation|Coding|Testing|Conception&chtt='>
		</td></tr>
		<tr><td colspan=2 align=center valign=top>
			<div class="graph-title">Time by Day</div>
			<img src='http://chart.apis.google.com/chart?cht=bvs&chd=t:0,0,0,0,0,0,0,0,0,0|0,0,0,0,0,0,0,0,0,0|0,0,0,0,0,0,0,0,0,0|0,60,0,0,0,116,90,0,20,0|75,0,0,0,0,147,143,75,0,147&chco=FFCC00,CC3300,CC6600,99CC00,CCCC00&chdl=Conceptual|Documentation|Coding|Testing|Conception&chxt=x,y&chxl=0:|Jan 17|Jan 18|Jan 19|Jan 20|Jan 21|Jan 22|Jan 23|Jan 24|Jan 25|Jan 26&chtt=&chs=500x200&chbh=30,10,10&chds=0,240,0,240,0,240,0,240,0,240&chxr=1,0,240,60'><br><img src='http://chart.apis.google.com/chart?cht=bvs&chd=t:0,0,0,0,0,0,0,0,0,0|0,0,0,0,0,0,0,0,0,90|0,0,0,0,90,50,0,0,0,0|0,0,0,0,90,0,0,150,0,0|0,0,372,90,0,0,0,87,84,138&chco=FFCC00,CC3300,CC6600,99CC00,CCCC00&chdl=Conceptual|Documentation|Coding|Testing|Conception&chxt=x,y&chxl=0:|Jan 27|Jan 28|Jan 29|Jan 30|Jan 31|Feb 1|Feb 2|Feb 3|Feb 4|Feb 5&chtt=&chs=500x200&chbh=30,10,10&chds=0,240,0,240,0,240,0,240,0,240&chxr=1,0,240,60'><br><img src='http://chart.apis.google.com/chart?cht=bvs&chd=t:0,0,0,0,0,0,0,0,0,0|0,0,0,0,0,0,0,0,0,0|60,90,0,0,0,0,0,0,300,0|0,0,0,0,0,0,0,0,0,0|0,75,0,138,0,172,75,0,15,0&chco=FFCC00,CC3300,CC6600,99CC00,CCCC00&chdl=Conceptual|Documentation|Coding|Testing|Conception&chxt=x,y&chxl=0:|Feb 6|Feb 7|Feb 8|Feb 9|Feb 10|Feb 11|Feb 12|Feb 13|Feb 14|Feb 15&chtt=&chs=500x200&chbh=30,10,10&chds=0,240,0,240,0,240,0,240,0,240&chxr=1,0,240,60'><br><img src='http://chart.apis.google.com/chart?cht=bvs&chd=t:0,0,0,0,0,0,0,0,0,0|0,0,0,0,0,0,0,0,0,0|225,68,201,150,0,0,236,0,0,0|0,0,0,0,0,0,0,0,0,0|0,0,67,75,0,0,0,0,0,90&chco=FFCC00,CC3300,CC6600,99CC00,CCCC00&chdl=Conceptual|Documentation|Coding|Testing|Conception&chxt=x,y&chxl=0:|Feb 16|Feb 17|Feb 18|Feb 19|Feb 20|Feb 21|Feb 22|Feb 23|Feb 24|Feb 25&chtt=&chs=500x200&chbh=30,10,10&chds=0,240,0,240,0,240,0,240,0,240&chxr=1,0,240,60'><br><img src='http://chart.apis.google.com/chart?cht=bvs&chd=t:0,0,0,0,0,0,0,0,0,60|0,0,0,0,0,0,0,0,0,0|75,90,75,0,41,0,75,99,0,150|0,0,70,0,0,0,0,15,0,0|75,0,0,70,0,0,45,0,0,0&chco=FFCC00,CC3300,CC6600,99CC00,CCCC00&chdl=Conceptual|Documentation|Coding|Testing|Conception&chxt=x,y&chxl=0:|Feb 26|Feb 27|Feb 28|March 1|March 2|March 3|March 4|March 5|March 6|March 7&chtt=&chs=500x200&chbh=30,10,10&chds=0,240,0,240,0,240,0,240,0,240&chxr=1,0,240,60'><br><img src='http://chart.apis.google.com/chart?cht=bvs&chd=t:0,0,0,0,0,0,0,0,0,0|0,0,0,0,0,0,0,0,0,0|0,86,120,112,63,90,51,66,0,380|0,0,0,0,0,121,0,0,0,13|0,0,0,0,0,0,0,0,0,0&chco=FFCC00,CC3300,CC6600,99CC00,CCCC00&chdl=Conceptual|Documentation|Coding|Testing|Conception&chxt=x,y&chxl=0:|March 8|March 9|March 10|March 11|March 12|March 13|March 14|March 15|March 16|March 17&chtt=&chs=500x200&chbh=30,10,10&chds=0,240,0,240,0,240,0,240,0,240&chxr=1,0,240,60'><br><img src='http://chart.apis.google.com/chart?cht=bvs&chd=t:0,0,0,0,0,0,0,60,0,0|0,0,0,0,0,0,0,0,0,0|0,0,0,0,0,215,0,156,0,60|0,0,0,0,0,0,80,0,0,0|0,0,0,0,0,0,0,0,0,0&chco=FFCC00,CC3300,CC6600,99CC00,CCCC00&chdl=Conceptual|Documentation|Coding|Testing|Conception&chxt=x,y&chxl=0:|March 18|March 19|March 20|March 21|March 22|March 23|March 24|March 25|March 26|March 27&chtt=&chs=500x200&chbh=30,10,10&chds=0,240,0,240,0,240,0,240,0,240&chxr=1,0,240,60'><br><img src='http://chart.apis.google.com/chart?cht=bvs&chd=t:0,0,0,0,0,0,0,0|0,0,0,0,0,0,0,0|60,0,0,0,183,196,144,63|0,0,0,0,0,15,0,0|0,0,0,0,0,0,0,0&chco=FFCC00,CC3300,CC6600,99CC00,CCCC00&chdl=Conceptual|Documentation|Coding|Testing|Conception&chxt=x,y&chxl=0:|March 28|March 29|March 30|March 31|April 1|April 2|April 3|April 4&chtt=&chs=500x200&chbh=30,10,10&chds=0,240,0,240,0,240,0,240,0,240&chxr=1,0,240,60'>
		</td></tr>
		</table>
		
		
		<div class="section-title">Cumulative Data</div>
		
		<table cellspacing=20>
		<tr><td align=center valign=top>
			<div class="graph-title">Time Per Defect Type</div>
			<img src='http://chart.apis.google.com/chart?cht=p3&chd=t:41,242,630,66,8,519,85,242,519,75,180,630,2060,120&chs=300x150&chl=Conceptual|testing|conception|logic|programming|coding|Implementation|Testing|Coding|Personnel|Application Support|Conception|Design|Networking&chtt='>
		</td><td align=center valign=top>
			<div class="graph-title">Time Per Phase</div>
			<img src='http://chart.apis.google.com/chart?cht=p3&chd=t:206,321,2735,1818,208,2023,7278,5220,1818,348,6838,120,180,7278,2023,5220&chs=300x150&chl=test|plan|code|implementation|shell code|testing|coding|conception|Implementation|Research|Design|Conceptual|Documentation|Coding|Testing|Conception&chtt='>
		</td></tr>
		<tr><td colspan align=center valign=top>
			<div class="graph-title">Actual vs Estimated LoC</div>
			<img src='http://chart.apis.google.com/chart?cht=s&chd=t:0,0,1080,307,258,198,111,173,120|416,171,274,288,41,189,65,93,85&chxt=x,y,x,y&chxr=0,0,150,30|1,0,150,30&chxl=2:|User-Estimated+LOC|3:|Actual+LOC&chxp=2,50|3,50&chs=300x200&chtt=Actual-Estimate History&chm=d,000000,1,1.0,10.0&chg=20,20'>
		</td>
		<td colspan align=center valign=top>
			<div class="graph-title">Actual vs Estimated LoC</div>
			<table>
			<tr><th>Project</th><th>Estimate</th><th>Actual</th></tr><tr><td>Email Client Server System</td><td>0</td><td>416</td></tr><tr><td>Email Client Server System</td><td>0</td><td>171</td></tr><tr><td>Email Client-Server System</td><td>1080</td><td>274</td></tr><tr><td>tImpl</td><td>307</td><td>288</td></tr><tr><td>tCodeRvw</td><td>258</td><td>41</td></tr><tr><td>iEx5</td><td>198</td><td>189</td></tr><tr><td>iEx4</td><td>111</td><td>65</td></tr><tr><td>iEx3</td><td>173</td><td>93</td></tr><tr><td>iEx0</td><td>120</td><td>85</td></tr>
			</table>
		</td></tr>
		
		</table>
	
		<div class="section-title">Time Log</div>
		<table class="log-table"> 
			<tr><th>Date</th><th>Type</th><th>Int. Time</th><th width="50%">Description</th></tr><tr><td>Jan 17, 2013, 10:30 AM - 11:45 AM</td><td>Conception</td><td>0</td><td>Team Dijkstra's regular meeting time. We brainstormed project ideas and decided on a networked chat client and server system.</td></tr><tr><td>Jan 18, 2013, 1:00 AM - 2:00 AM</td><td>Testing</td><td>0</td><td>Tested network connectvity for ACL2 using various methods.  Found that through file streaming, we could transfer files through connected network drives.  We are not able to connect to a specific TCP/IP address or anything without a directory resolution on the network.  Example: \\MatthewCrist-Laptop would work, \\127.0.0.1 would work, but http://127.0.0.1 or \\127.0.0.1:80 would not yeild results.  I have determined that either we will need supplemental language in order to make the transfer or map network drives.</td></tr><tr><td>Jan 22, 2013, 10:30 AM - 11:45 AM</td><td>Conception</td><td>0</td><td>Team Dijkstra's regular meeting time. Finalized the idea of the chat system and began initial designs for the proposal.</td></tr><tr><td>Jan 22, 2013, 7:32 PM - 8:44 PM</td><td>Conception</td><td>0</td><td>Worked on updating the team's LoC table to include tImpl from last semester. Reused the spreadsheet from last semester and added the new data. Then included the information into the t2 and t3 documents.</td></tr><tr><td>Jan 22, 2013, 8:53 PM - 10:49 PM</td><td>Testing</td><td>0</td><td>Worked on researching networking from within ACL2. There is not any native support for networking. However, we did discover that we could use networking if the Operating System supports it. Since our operating systems can be networked, we can work around this limitation.</td></tr><tr><td>Jan 23, 2013, 2:30 AM - 4:00 AM</td><td>Testing</td><td>0</td><td>Attempted to research means by using Common Lisp to implement a layer for TCP/IP transfer to see if this is a viable alternative.  The solutions that are available seem to be beyond the scope to which we can implement.  It appears the network drive route is our best alternative.</td></tr><tr><td>Jan 23, 2013, 8:04 PM - 10:27 PM</td><td>Conception</td><td>0</td><td>Worked on writing the content of the Proposal. Finished the sections for the Overview, High-level design, some of the requirements, and began the PROBE estimate.</td></tr><tr><td>Jan 24, 2013, 10:30 AM - 11:45 AM</td><td>Conception</td><td>0</td><td>Team Dijkstra's regular meeting time. We worked on the proposal and worked on several proofs of concepts to determine if the project is feasible.</td></tr><tr><td>Jan 25, 2013, 10:00 AM - 10:20 AM</td><td>Testing</td><td>0</td><td>Researched event handling in ACL2 from previous project regarding "Blue Ball" scenario.  Determined that this could be used to implement the client side gestures for the chat messages to be sent and received.  Also noted that the primitive nature of the interface would require that we construct many of the GUI element ourselves.  I think we should be able to assign functions to these events to read and write files where necessary.</td></tr><tr><td>Jan 26, 2013, 4:04 PM - 6:31 PM</td><td>Conception</td><td>0</td><td>Finished the complete proposal with all the specified requirements and PROBE estimate.</td></tr><tr><td>Jan 29, 2013, 10:30 AM - 11:45 AM</td><td>Conception</td><td>0</td><td>Team Dijkstra's regular meeting time. Dr. Page addressed concerns about the Project and that GUI's and File IO cannot exist in the same ACL2 program. We began a major re-design of the project and re-wrote most of the project requirements that are to be included in the proposal.</td></tr><tr><td>Jan 29, 2013, 11:45 AM - 2:12 PM</td><td>Conception</td><td>0</td><td>Found out that some of the components of the original proposal were not feasible. Worked with Matthew to re-write sections of the proposal to include the new ideas for the project and write out the requirements for the project. The new project will be an email system instead of a chat system, with more emphasis on message delivery and content.</td></tr><tr><td>Jan 29, 2013, 12:00 PM - 2:30 PM</td><td>Conception</td><td>0</td><td>After discussion with Rex Page regarding some of the features of ACL2, he described to us that ACL2 cannot use a GUI and write/read from files at the same time.  This has thrown us in a tizzy about writing a chat client.  After reassessment of the situation, we determined that we could salvage much of the information that we derived in previous sessions by using supplemental language, such as C to write the server and client interfaces that would invoke ACL2 executables on demand and have these applications handle the events for both client and server processes.  We could use folder monitoring on server side and invoke those modules that are created adding to the modularity of the application itself.  Isaac, Wes and I rewrote the design document so that it would be available for Thursday (January 31, 2013) for the presentation.  We also determined that Adam should be the one to give the overview of the application since he may want the extra speaking opportunity.</td></tr><tr><td>Jan 30, 2013, 4:00 AM - 5:30 AM</td><td>Conception</td><td>0</td><td>Created the slides for the presentation that will be held tomorrow (January 31, 2013).  Used the design document as a point of reference for bullet points.  Also devided the slide information based on role (as opposed to design layer) to "sell" the idea to the end user and convey the purpose of the process we are intending to use.</td></tr><tr><td>Jan 31, 2013, 8:00 AM - 9:30 AM</td><td>Testing</td><td>0</td><td>Attempted to get Proofpad to function on my windows PC (Microsoft Windows 8) to no success.  Attempted to get it to work on my Linux partition as well (Ubuntu 11.04 LTS) with no such luck either.  Both result in NullPointerExceptions being tossed back by the application itself.  Unable to invoke ACL2 internally as a result.  Decided to do some testing with ACL2 command line and get familiar with the environment  Noticed that the teachpacks were not certified for io-utilities.lisp and list-utilities.lisp, so I had to include them in a subfolder and include them in the file directly.  Cannot use program mode in ACL2 and have to stay in logic mode else the files will not include correctly into the project.  Considering DrRacket as the IDE for development as a result.</td></tr><tr><td>Jan 31, 2013, 1:00 PM - 2:30 PM</td><td>Coding</td><td>0</td><td>Started to develop the infrastructure for the server monitor program.  Determined that the use of processes and a dependency relationship was necessary to ensure that a process was complete before invoking a dependent processes.  Derived an XML DTD for the input format to load modules into the server environment for invocation.  Assigned names to modules in the format (program).(content).(action) naming convention, a folder to monitor for files, and a process to invoke when a file is detected.  Information has been updated on the wiki for reference on module creation under >> The Server Monitor.</td></tr><tr><td>Feb 1, 2013, 4:30 AM - 5:20 AM</td><td>Coding</td><td>0</td><td>Did some more work on the Server Monitor.  Wrote threading for directory monitoring and process invocation.  Have not tied module invocation directly to program yet, as I need to verify that executables can be effectively created from Racket.  File size seems to be rather large at the moment for just a hand full of code.  May consider an alternative approach.</td></tr><tr><td>Feb 3, 2013, 12:42 AM - 2:09 AM</td><td>Conception</td><td>0</td><td>Matthew emailed about an issue with the ACL2 EXE's not working correctly and possibly being unable once the project gets large. Spent this time researching how to move the project to UNIX based servers and working with launching ACL2 from the terminal and using shell scripts to call ACL2 lisp files.</td></tr><tr><td>Feb 3, 2013, 10:00 AM - 12:30 PM</td><td>Testing</td><td>0</td><td>Determined that executables in ACL2 is not a practical solution.  Tried invocations through redirection on the input method for ACL2 since the executable did not take any arguments.  So far I have had success.  Module invocation can occur through a shell script which does not require dependency checks (which will allow for linear execution.)  Reassessing the use of unsynchronized process invocation.  Perhaps synchronizing the main processing thread to halt while a process is running could be the best alternative.  Invocation of a shell script also alleviates the overhead that may have been involved and we can implement some of the operating system features to transfer information (such as ftp for file transfer).</td></tr><tr><td>Feb 4, 2013, 5:23 PM - 6:47 PM</td><td>Conception</td><td>0</td><td>Worked on typing the progress report with the completed task to date and writing out the plans for the task to be completed. Also noted in in the progress report the need to move the system server to a UNIX based system to run the server components</td></tr><tr><td>Feb 5, 2013, 4:00 AM - 5:30 AM</td><td>Documentation</td><td>0</td><td>Updated progress report with findings over the last two weeks for delivery to Dr. Page and the team.  Need to address issues with the change in the group make up, since Isaac will be unable to participate in the project until his personal issues are resolved.</td></tr><tr><td>Feb 5, 2013, 10:30 PM - 11:45 PM</td><td>Conception</td><td>0</td><td>Team Dijkstra's regular meeting time. We delivered a progress report to Dr. Page. We worked on converting the Windows based designs to a UNIX file system in order for the system to run.</td></tr><tr><td>Feb 5, 2013, 7:32 PM - 8:35 PM</td><td>Conception</td><td>0</td><td>Worked on setting up ACL2 modules to run though the UNIX shell and wrote test scripts to automatically call ACL2 functions from a shell script</td></tr><tr><td>Feb 6, 2013, 10:00 AM - 11:00 AM</td><td>Coding</td><td>0</td><td>Reorganized server code into better directory management so ensure a structure that can be deployed more effectively.  Updated references to be on local scope, as opposed to global folder references for portability purpose.</td></tr><tr><td>Feb 7, 2013, 6:30 AM - 8:00 AM</td><td>Coding</td><td>0</td><td>Wrote scanner portion for the analyzer for XML content that can be parsed with ACL2.  Added consume, tag, pcData, nextToken, and tokenizeXML functions.  Entry point is tokenizeXML which takes a string of XML and will return a list of tokens and the token type.  This should then be added to a stack to verify xml correctness and can then be used to extract the PCDATA information contained between the brackets.</td></tr><tr><td>Feb 7, 2013, 10:30 PM - 11:45 PM</td><td>Conception</td><td>0</td><td>Team Dijkstra's regular meeting time. We worked on the XML format and multi-level design and designed the data structure format for the project. We then wrote sections of the progress report and assigned an XML module to each team member.</td></tr><tr><td>Feb 9, 2013, 5:14 PM - 7:32 PM</td><td>Conception</td><td>0</td><td>Worked on designing the XML structure for email messages. Designed the XML layout, Document type definition and explanation. These topics were then uploaded to the groups wiki for review, comment, and inclusion in the design document.</td></tr><tr><td>Feb 11, 2013, 5:12 PM - 8:04 PM</td><td>Conception</td><td>0</td><td>Worked on the team's design document and formatting of the sections. Took the information from the group's wiki and generated the data structure and IO format sections from this information. The other sections were expanded from the initial proposal with updates to relevant sections where the server information had been changed.</td></tr><tr><td>Feb 12, 2013, 10:30 PM - 11:45 PM</td><td>Conception</td><td>0</td><td>Team Dijkstra's regular meeting time. We reviewed the team design document and made many changes to the XML format and found several errors. We marked up the design for submission on Thursday.</td></tr><tr><td>Feb 14, 2013, 12:15 AM - 12:30 AM</td><td>Conception</td><td>0</td><td>Derived the format, in XML, for the transportation of the registration of a user into the address book for the server.  Also formulated the steps to be involved in order to invoke the appropriate modules.</td></tr><tr><td>Feb 14, 2013, 12:30 AM - 1:45 AM</td><td>Coding</td><td>0</td><td>Wrote the shell script that acquired the contents of the source file (ACL2 definitions) and compiled a function invocation to be written to a temporary file, input directed into ACL2 and removal of the temporary file created.  Considering just including the book to the source file and writing a new temporary file that invokes the function and includes to appropriate books in order to not manipulate the source files for unexpected results.</td></tr><tr><td>Feb 14, 2013, 2:00 AM - 4:00 AM</td><td>Coding</td><td>0</td><td>Created functions for managing address-book.  getAddress, parseAddresses, getAddressBook acquire values from the XML that was passed to the script via redirection through the XML that was acquired through the shell scripting.</td></tr><tr><td>Feb 14, 2013, 6:15 AM - 8:00 AM</td><td>Coding</td><td>0</td><td>Created the functions for managing output of the address-book data structure.  addressXML, addressBookXML and getAddressBookXML will acquire the XML for the structure to be written back to the xml data file.  Determined that I will need to write to a temporary file and delete the original source, and rename the temporary file to the permanent persistent file in order to allow for the file to be updated (since I cannot write back to a read file).  Updated shell script to reflect these changes in ./server/modules/user/register/register-user.sh.</td></tr><tr><td>Feb 16, 2013, 1:15 AM - 3:00 AM</td><td>Coding</td><td>0</td><td>Added functions that acquires the contents of the tokens passed by parsing the XML information.  getDomain, getName, getPassword all use these tokens in order to extract the information from the registration file that will be used to determine what information needs to be added to the address-book.</td></tr><tr><td>Feb 16, 2013, 3:00 AM - 5:00 AM</td><td>Coding</td><td>0</td><td>Added functions that will test the address existence (to prevent duplication) and add/remove an address from the address-book.  isInAddressBook tests the predicate conditions to determine if an address can be added/removed by addAddress/removeAddress functions.</td></tr><tr><td>Feb 17, 2013, 3:43 PM - 4:51 PM</td><td>Coding</td><td>0</td><td>Worked on designing the server email components of the server module. Wrote out data flow diagrams to match the data structure format and XML I/O from the design document, and wrote function prototypes.</td></tr><tr><td>Feb 18, 2013, 5:05 PM - 6:12 PM</td><td>Conception</td><td>0</td><td>Typed the progress report for the presentation tomorrow to give Dr. Page an update on our projects task and goals. Also updated the design document to Revision I for submission tomorrow.</td></tr><tr><td>Feb 18, 2013, 7:23 PM - 10:44 PM</td><td>Coding</td><td>0</td><td>Worked on implementing the server email components. Took my designs on paper from yesterday and worked them into working functions. I was able to finish an email splitter which splits one email sent to many recipients into multiple messages and XML output for email messages.</td></tr><tr><td>Feb 19, 2013, 9:00 AM - 10:30 AM</td><td>Coding</td><td>0</td><td>Updated shell script to generate static script that will invoke the registerUser function also defined in the register-user.lisp file.  Temporary lisp file is generated with static XML information and then redirected into the ACL2 program in order to parse the information.  File input is delegated to the shell, file output is delegated to ACL2.</td></tr><tr><td>Feb 19, 2013, 10:30 AM - 11:45 AM</td><td>Conception</td><td>0</td><td>Team Dijkstra's regular meeting time. We delivered a progress report to Dr. Page on our task so far. Also we updated our SVN repository to the most recent changes to the groups implementation. Isaac rejoined the group and the remaining time was spend catching him up on the groups progress.</td></tr><tr><td>Feb 19, 2013, 3:00 PM - 4:00 PM</td><td>Coding</td><td>0</td><td>Corrected references the xml-scanner to ignore whitespace since some of the whitespace tokens that were being parsed were causing issues with the interpretation of the xml tokens.  user/registration module deemed complete at current point in time.</td></tr><tr><td>Feb 22, 2013, 4:32 PM - 7:11 PM</td><td>Coding</td><td>0</td><td>I worked on the ACL2 implementation of the server-email functions and finished the implementation of the components. The functions did not admit correctly and the details are described in the defect log. The issues were traced to file IO so we are still able to run and test the computational functions.</td></tr><tr><td>Feb 22, 2013, 2:59 PM - 4:16 PM</td><td>Coding</td><td>0</td><td>I re-worked the file IO functions to accommodate the requirements of the IO utilities functions. This fixed the majority of the admission issues for these functions. Still the getEmail and runEmail functions are the global execution functions still have work needed to get them to admit and run with ACL2.</td></tr><tr><td>Feb 25, 2013, 8:00 AM - 9:30 AM</td><td>Conception</td><td>0</td><td>Starting in the development of the network connectivity subsystem that will allow for the transmission of information across a network via IP address.  Determined previously that the "nc" command in UNIX was sufficient in order to accomplish this task  Proceeded to decompose the component and derived the need for a separate "method invocation" language.</td></tr><tr><td>Feb 26, 2013, 8:00 AM - 9:15 AM</td><td>Conception</td><td>0</td><td>Proceeded to develop a rough draft for the diagram that would be formalized into the design document for network connectivity.  Upon further investigation, I realized that I need to find a way in order to send a request to the server to open a sending port after the client has acknowledged opening a recieving port for data transmission.  This appears to be the most difficult scenario for the server to overcome.</td></tr><tr><td>Feb 26, 2013, 10:30 AM - 11:45 AM</td><td>Coding</td><td>0</td><td>Team Dijkstra's regular meeting time. We brainstormed bug issues and found a solution to the Server-Email IO problem. We will resolve multiple email messages from the command shell and call ACL2 for each individual message.</td></tr><tr><td>Feb 27, 2013, 12:01 PM - 12:53 PM</td><td>Coding</td><td>0</td><td>Worked on the IO contents and designing the Test and Theorems for the server email module. Had an idea to combine the IO into one function to see if it fixes the IO issue I'm having with the server-email. Started implementation and will finish tonight.</td></tr><tr><td>Feb 27, 2013, 9:54 PM - 10:32 PM</td><td>Coding</td><td>0</td><td>I finally have the IO fixed. With one call I can have and input file in XML format parse and get passed to an output file. Now its time to handled multiple XML messages in one file.</td></tr><tr><td>Feb 28, 2013, 10:30 AM - 11:45 AM</td><td>Coding</td><td>0</td><td>Team Dijkstra's regular meeting time. We worked on server implementation and fixed issues with the server-email file. We split it into two files where one contained the IO functions and the other contained the logic functions. This was done in order to make proving theorems in ACL2 easier.</td></tr><tr><td>Feb 28, 2013, 4:02 PM - 5:12 PM</td><td>Testing</td><td>0</td><td>I wrote the theorem suite for the server-email functions. These tested each function in the file at least once. This guarantees that the written code does what it is needed to do.</td></tr><tr><td>March 1, 2013, 12:35 AM - 1:45 AM</td><td>Conception</td><td>0</td><td>Started to develop the basis for the "Server Messaging Language" that would overcome the need for remote method invocation.  Syntax of which would be encapsulated in curly brackets and separated by semicolins.  Started prototyping functions to scan for this language.  Header information would be passed via first line in the XML transmission over the network and would be saved in a timestamp relative to UNIX conception date (date +%s.txt).</td></tr><tr><td>March 2, 2013, 4:53 PM - 5:34 PM</td><td>Coding</td><td>0</td><td>I wrote a shell script that dynamically writes a lisp file with the command to call the rwEmail function and output the files to a directory with the clients name in the servers store folder. Each file is names msg_timestamp where the timestamp is the actual timestamp of the message.</td></tr><tr><td>March 4, 2013, 8:00 AM - 8:45 AM</td><td>Conception</td><td>0</td><td>Started to rough draft a client side development plan.  Wes and I are considered the "server side" team, while we had hopes of Adam and Isaac being the "client side" team.  Being that both Adam and Isaac were gone, Wes and I have had to develop a plan of action toward pushing for project completion.  RMI has been temporarily placed on hold until we can solve these issues.  Perhaps and explanation of the RAD process and a bit of motivation would be the route to go.  Designed a flow chart for an overview of the basic functionality and what components were complete.  Decided that I would give the presentation on the update of the status of the project.</td></tr><tr><td>March 4, 2013, 11:49 AM - 1:04 PM</td><td>Coding</td><td>0</td><td>Worked on updating rwEmail. I changed the output file from being solely passed in by the parameters to where only a timestamp is required. The output directory is now dynamically generated to pull the <to> tag from the XML and outputs to output each email message into a directory based on the contents of the tag and the naming convention that was implemented earlier for each individual file.</td></tr><tr><td>March 5, 2013, 7:15 PM - 8:30 PM</td><td>Coding</td><td>0</td><td>Started development on the RMI language.  Instead of developing this as a module, I have decided to place this in the "includes" folder since it would more than likely be used by other modules.  Point of entry is getActions function which would return a data structure of actions that will be updated in the next design document.  On a side note, we can use this for user authentication where required instead of a separate request for authentication.</td></tr><tr><td>March 5, 2013, 2:30 PM - 2:45 PM</td><td>Testing</td><td>0</td><td>Tested out some shell solutions to multiple file traversal, since Wes was stating he needed to find a resolution for this issue, as discussed in our meeting earlier today.  Posted a short "how-to" on the for loop and file acquisition.  Wes responded shortly after implementing the code to verify its working condition.  It appears to be the solution we were looking for.  Considering implemenation in other modules as well as the register-user module.</td></tr><tr><td>March 5, 2013, 7:24 PM - 7:48 PM</td><td>Coding</td><td>0</td><td>Worked on updating the shell script to include a for loop to process each file that exist in the incoming directory. Also edited, the route-email ACL2 file to change the directory structure of the email output.</td></tr><tr><td>March 7, 2013, 12:00 AM - 2:30 AM</td><td>Coding</td><td>0</td><td>Continued development on the RMI language interpreter.  Developed last few functions getActionString, getAction.  Brackets encapsulate the actions, and semicolins separate the actions.  SERVERACTION denotes a server action to take place.  CLIENTACTION denotes that a client action should take place.  At the time of this file conception, MOVEFILE and COPYFILE actions are only considered.  The portion containing the string between the brackets is the module that will be considered.  This will acquire the "monitor" value from the module registration on the server side.  In otherwords, the file that contains the "header" information will be MOVED/COPIED (depending on action) to the monitor for the module that is in the brackets, thus invoking the monitor process and kick starting the module itself.  Files that contain monitor information will end with a file extension of $unix_timestamp.rmi.  When this file is copied, the header information is removed and the output is the following XML that is contained in the file ($unix_timestamp.xml).</td></tr><tr><td>March 7, 2013, 7:30 PM - 8:30 PM</td><td>Conceptual</td><td>0</td><td>Creation of the create-user-request.lisp file. Planning how to generate XML for user access requests</td></tr><tr><td>March 9, 2013, 7:59 PM - 9:25 PM</td><td>Coding</td><td>0</td><td>Worked on the client code for the email module. I wrote the functions to parse strings into XML files for outgoing messages. I also handled the need for the client to sent an email to multiple recipients to where a separate XML file will need to be written for each recipient indicated in the to field of the email xml.</td></tr><tr><td>March 10, 2013, 5:30 PM - 7:30 PM</td><td>Coding</td><td>0</td><td>Completion of createRequests function in create-user-request.lisp. Creation of the create-user-request.sh script. This script invokes the create-user-request.lisp file</td></tr><tr><td>March 11, 2013, 12:04 PM - 12:51 PM</td><td>Coding</td><td>0</td><td>I worked on writing IO code for the client side email module. This included writing code for both incoming and outgoing messages. Since these needed to be handled differently, there are multiple functions for each of these requirements.</td></tr><tr><td>March 11, 2013, 8:13 PM - 9:18 PM</td><td>Coding</td><td>0</td><td>I finished the IO code for the client email. It now handles multiple recipients and will output a single XML file that will need to be processed to send the multiple email messages. A shell script was written to handled ALL incoming messages and process them to HTML files for easy reading.</td></tr><tr><td>March 12, 2013, 11:46 AM - 12:49 PM</td><td>Coding</td><td>0</td><td>The client email code has been finished. Worked on tweaks to get the output correct and in the correct XML format. Worked on naming of files to ensure unique naming for each generated file. Finished a shell script to split the email output that contains multiple recipients.</td></tr><tr><td>March 13, 2013, 9:00 AM - 10:30 AM</td><td>Coding</td><td>0</td><td>Began adding shell commands to extract the domain and name from the registration files to be able to create the directories for the email storage on the server.</td></tr><tr><td>March 13, 2013, 5:13 PM - 7:14 PM</td><td>Testing</td><td>0</td><td>Tested the client code. Worked on verification of the connection between the logic module and the IO module. Ensured that the correct functions were called, and returned the correct structures. This is set up for writing the theorems for this module. Also added the getHTMLtext to the client logic to allow an HTML file to formed and written instead of regular plain text for a nicer looking output.</td></tr><tr><td>March 14, 2013, 6:43 PM - 7:34 PM</td><td>Coding</td><td>0</td><td>Wrote the shell scripts to automate the client email processing. One shell script was made to handle incoming email messages and directs incoming messages to the inbox folder. The other shell script handled outgoing messages and places them in the outbox folder.</td></tr><tr><td>March 15, 2013, 9:46 PM - 10:52 PM</td><td>Coding</td><td>0</td><td>Added to the outgoing shell script the capability to parse multiple emails and create an XML file that contains a single email message with a unique file name. This shell script will then send the single email script to the server using the nc command.</td></tr><tr><td>March 17, 2013, 12:15 AM - 12:48 AM</td><td>Coding</td><td>0</td><td>Finished adding the directory creation mechanisms to the shell scripts and tested the user registration process.  It seems to be working correctly now.</td></tr><tr><td>March 17, 2013, 12:50 AM - 12:55 AM</td><td>Testing</td><td>0</td><td>Continued to test the functionality of the user registration process on the server side.  One thing to note, we cannot have spaces in our name and domain.  Whitespace has been trimmed.</td></tr><tr><td>March 17, 2013, 9:30 PM - 10:00 PM</td><td>Coding</td><td>0</td><td>Changed parameters of createRequests function to accept an argument for the time stamp of creation used by the create-user-request.sh script</td></tr><tr><td>March 17, 2013, 1:00 AM - 1:15 AM</td><td>Coding</td><td>0</td><td>Added and modified lines in the register-user and address-book lisp files to allow for a user to register with a password.  This will be used to verify the user can perform actions on the server side.</td></tr><tr><td>March 17, 2013, 1:15 AM - 3:00 AM</td><td>Coding</td><td>0</td><td>Created the verify action on the user module.  Defined utility functions to acquire domain, name, password and the location of the client.  The location will need to be extracted from the original XML from the shell script since it does not conform the the verification user information.</td></tr><tr><td>March 17, 2013, 3:00 AM - 6:17 AM</td><td>Coding</td><td>0</td><td>Created all the functions that will perform the actions on the mailing list.  subscribe, unsubscribe, and all predicates to allow for these actions to complete.</td></tr><tr><td>March 17, 2013, 6:37 AM - 6:45 AM</td><td>Testing</td><td>0</td><td>After looking at some of the properties from the address-book_tests file, I realize that I forgot to log these functions into the PSP logs from last cycle (probably because I did them right before class and lost track of time).  These have been added to this log.</td></tr><tr><td>March 23, 2013, 2:00 AM - 2:45 AM</td><td>Coding</td><td>0</td><td>Added verify-user.sh file to invoke the actions required to start the user verification process on the server side.  Having a few issues getting remote-actions.lisp to be accepted into logic (guard checking issues).</td></tr><tr><td>March 23, 2013, 12:00 AM - 2:50 AM</td><td>Coding</td><td>0</td><td>Finished the verify-user.sh action file for establishing a connection between the client and server for mail reception.</td></tr><tr><td>March 24, 2013, 4:58 PM - 6:18 PM</td><td>Testing</td><td>0</td><td>Worked on the theorem suite for the client email module. The theorems are used to test the data integrity of the logic functions in the client. We were unable to test the IO functions with theorems since they rely on variant data. However, the logic could be tested using theorems and we were able to prove that the client email logic module returns the correctly formatted data based on correct input.</td></tr><tr><td>March 25, 2013, 6:12 PM - 6:49 PM</td><td>Coding</td><td>0</td><td>Tweaked the shell scripts for the clients to ensure that the server has ample time to process a single email message and that the client will not overload the server by adding too many emails to the queue.</td></tr><tr><td>March 25, 2013, 7:30 PM - 8:30 PM</td><td>Conceptual</td><td>0</td><td>Creation of the create-block-request.lisp file.  Planning how to generate XML for requests to block users</td></tr><tr><td>March 25, 2013, 9:30 PM - 11:00 PM</td><td>Coding</td><td>0</td><td>Completion of the function responsible for generating xml for creating requests to block users as well as I/O functions</td></tr><tr><td>March 25, 2013, 11:30 PM - 11:59 PM</td><td>Coding</td><td>0</td><td>Creation of create-block-request.sh script.  This script invokes the create-block-request.lisp file</td></tr><tr><td>March 27, 2013, 9:30 PM - 10:30 PM</td><td>Coding</td><td>0</td><td>Creation of create-mailing-list.lisp file. Creation of the XML Generating functions addressesXML and ownerXML</td></tr><tr><td>March 28, 2013, 7:00 AM - 8:00 AM</td><td>Coding</td><td>0</td><td>Creation of file output method</td></tr><tr><td>April 1, 2013, 5:55 PM - 6:47 PM</td><td>Coding</td><td>0</td><td>Worked on reworking the Java Gui client to work directly with ACL2 instead of relying on shell scripts. This allows faster and more secure connections between remote host for our networking portions.</td></tr><tr><td>April 1, 2013, 8:59 PM - 11:10 PM</td><td>Coding</td><td>0</td><td>Continued to work on the Java integration with ALC2. I was able to complete most of the Send email functions for the client. All that remains on this front is sending the file's contents over the network.</td></tr><tr><td>April 2, 2013, 6:32 PM - 9:48 PM</td><td>Coding</td><td>0</td><td>I reworked the client actions into the required Java programs. They now work with the server and can send and receive information. The scripts that handled the ACL2 function calls were also integrated into the GUI interface and are easily accessible to the user if they are running the interface.</td></tr><tr><td>April 2, 2013, 9:49 PM - 10:04 PM</td><td>Testing</td><td>0</td><td>I found a bug with the server code that was already implemented. When looping though all files in a directory, it was picking up extra hidden files as well, This caused the server to crash. I added code to fix this issue.</td></tr><tr><td>April 3, 2013, 5:47 PM - 8:11 PM</td><td>Coding</td><td>0</td><td>I finished coding the Java integration for the current ACL2 implementation. The client side of the program can now send and receive emails and User registration. This also includes user verification in order to get email messages.</td></tr><tr><td>April 4, 2013, 4:31 PM - 5:34 PM</td><td>Coding</td><td>0</td><td>I added the delete function to the client GUI interface. I also worked on fixing a bug on the transmission of messages. The current issue is that the verification module does not allow for correct exceptions to be processed from the server. If a transmission fails, it does not handle the output correctly and sends an incorrect XML file back to the client.</td></tr>
		</table> 
		
		<div class="section-title">Defect Log</div>
		<table class="log-table">
			<tr><th>Date</th><th>Phase</th><th>Fix Time</th><th width="50%">Description</th></tr><tr><td>Jan 18, 2013</td><td>Networking</td><td>60</td><td>IP resolution cannot occur in ACL2 unless a network drive is mapped, after which you can call it by its network path.  Networking drives may be our resolution to this issue.</td></tr><tr><td>Jan 22, 2013</td><td>Design</td><td>60</td><td>Found out that networking is not feasible from within ACL2. To make it natively supported, writing and extending several Common Lisp features would need to be done. We cannot do this in the scope of this project. So we found that using the Operating System's native filesystem and networking support would be much more friendly to deal with once we get to this stage in the project.</td></tr><tr><td>Jan 29, 2013</td><td>Design</td><td>147</td><td>Found out that GUI's and File IO cannot coexist in ACL2. We can have one or the other, but not both. So we had to scrap the GUI portions of the project and replace them with a new idea. The new idea is the current design of the email server and client system. This project is strictly data processing and file IO. This project will be file and text based rather than Visual and Interactive.</td></tr><tr><td>Jan 29, 2013</td><td>Conception</td><td>150</td><td>ACL2 cannot work with a GUI and IO at the same time.  Had to reevaluate how to salvage what we had regarding design.  Instead of real time chat, we would be sending email.  Instead of ACL2 interfaces, we would program them in C or C++.</td></tr><tr><td>Jan 31, 2013</td><td>Application Support</td><td>90</td><td>Unable to get Proofpad to work correctly on any of my computers.  Windows 8 and Ubuntu both show NullPointerExceptions when trying to implement ACL2 and Proofpad will not correctly identify with ACL2.  Opted to use Dracula instead.</td></tr><tr><td>Feb 3, 2013</td><td>Conception</td><td>150</td><td>Determined that the size of the executables generated by ACL2 would not be a practical application for our program.  Opted to use input redirection into ACL2 prompt and shell script invocation.  Ubuntu would be the server platform and the two Macs would be used as clients to send and recieve information.</td></tr><tr><td>Feb 5, 2013</td><td>Personnel</td><td>15</td><td>With the loss of Isaac from the team, modules had to be prioritized for completion and new due dates had to be set.  Determined that I would need to finish the XML Parser as quickly as possible to begin development in order to maintain deadlines.</td></tr><tr><td>Feb 5, 2013</td><td>Design</td><td>124</td><td>We discovered that generating ALC2 executables and invoking these files from an outside source is a troublesome experience and that the generated files are hundreds of megabytes in size. Since we will have several modules for this project, we saw this as a negative side effect of executable files. To solve this problem, we moved all our project to the UNIX platform. This has allowed us to use the UNIX shell environment to generate shell scripts that invoke the ACL2 environment while passing in ACL2 source code files. This reduces the size of the files to kilobytes and streamlines the execution process and eliminating the size of outside programming needed for the original idea to work. Thus we will be executing our ACL2 code through a UNIX shell script and the shell scripts will in turn be executed from the outside programming environment.</td></tr><tr><td>Feb 12, 2013</td><td>Design</td><td>75</td><td>When we looked at the design review. We saw several errors in the XML format that would not pass if it were to be sent though a web browser. We had to work on setting the XML to a correct format and modify the document type definitions to comply with proper XML syntax.</td></tr><tr><td>Feb 15, 2013</td><td>Coding</td><td>10</td><td>Made the decision to allow shell scripts to take care of much of the IO on the read side as possible and file operations would need to be done by the OS in order to keep correct RWE privs on the file for security purposes.  CHMOD properties will need to be determined at a different date, since access to store files has not been completely determined.  Best guess is that server will be the only one that needs read/write access to these files and no user group will need execution access.</td></tr><tr><td>Feb 19, 2013</td><td>Coding</td><td>20</td><td>Issue arose when parsing XML tokens that the whitespace in the document was being identified by</td></tr><tr><td>Feb 22, 2013</td><td>Coding</td><td>12</td><td>After finishing coding the ACL2 functions, the functions would not admit under normal ACL2 invocation. However, it did work under Dr Racket. The issue was traced to the IO and List utilities files as they were un-certified files within the regular ACL2 environment. Adding the suppression to the certification requirement, the files worked as usual.</td></tr><tr><td>Feb 23, 2013</td><td>Coding</td><td>52</td><td>After fixing the certification issue. Certain functions were still not admitting to ACL2. This was due to illegal arguments as the ACL2 output stated. To fix these arguments, the state variable had to be set and implemented differently than I had intended. I added some safe guards to the variables and added constraints to the functions that depended on them.</td></tr><tr><td>March 4, 2013</td><td>Personnel</td><td>45</td><td>Has to reconsider a new "plan of action" with regards to completion of the project.  Current methods seemed to archaic for the current situation as we were unable to adapt due to the relaince on people.  Opted for a RAD development solution where SCRUM and Extreme Programming were the foundations for development.  Will need to explicitly sit down and speak with team to describe the course of action.  Developed a visual aid to describe where we are and what is completed.  There seems to be more questions on this as opposed to the completion of the project.</td></tr><tr><td>March 5, 2013</td><td>Coding</td><td>21</td><td>After finishing the IO entry point function on the server email module, We noticed that the XML files were being generated with a comma instead of the @ symbol between names and domains in the email address. Also, the output file for the email was a statically named file. This file needed to be dynamically named with a timestamp.</td></tr><tr><td>March 11, 2013</td><td>Coding</td><td>24</td><td>Email parsing had a one off error that did not have the correct lines returned for the XML file which rendered the outputted file useless.</td></tr><tr><td>March 13, 2013</td><td>Coding</td><td>20</td><td>Was not able to get email to write to the server.  Determine that it was an issue that the directories did not exist, thus the information was not being written properly by the ACL2 script, which was a difficult thing to determine since acquiring error information from the runtime environment would only be possible if we wrote the error to an output log.  Determined that I would need to finish the registration process by adding directory creation to the shell script in order to make this function correctly.  Until then, we can manually create the directories.</td></tr><tr><td>March 14, 2013</td><td>Coding</td><td>32</td><td>Shell script was not correctly splitting the XML files based on the regular expression. Started using awk to parse the file. However, the file did not have a unique file name and was getting overwritten every time the script was executed.</td></tr><tr><td>March 23, 2013</td><td>Coding</td><td>35</td><td>Type checking for string-listp on XML conversion in the server actions was incorrect.  Was using endp and stringp tests, when combined I could use string-listp, which ended up being the required fix and not having to turn off guard checking.</td></tr><tr><td>March 24, 2013</td><td>Testing</td><td>16</td><td>The theorem that tested the email data structure was not passing. This was traced to an error in the proof and not in the code. The error was trying to access an item that was not in the structure, hence the failure of the proof.</td></tr><tr><td>March 27, 2013</td><td>Design</td><td>0</td><td>Need to restructure the create-mailing-list.lisp file to handle multiple addresses and multiple owners.</td></tr><tr><td>April 1, 2013</td><td>Coding</td><td>23</td><td>Working on integrating the ALC2 with Java. Having trouble getting Java to see the files that ACL2 has generated. Right now, the current solution is to make the Java sleep for a couple of seconds while ACL2 finishes its processing then resume. Then it sees the files that ALC2 generates</td></tr><tr><td>April 2, 2013</td><td>Testing</td><td>15</td><td>The script that Matthew had written to open all files in a directory was not working. It was needed that the function open only the xml files, since there are hidden files in a directory, I had to modify the function to account for these changes.</td></tr>
		</table>
	</body>
</html> 
 
